package com.team2.outpatient_sys.dao;

import com.team2.outpatient_sys.pojo.Administrator;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

@Mapper
public interface AdministratorDao {
    /**
     * 通过管理员的id字段修改指定管理员信息的密码为新密码
     * @param id 需要修改的管理员信息的id字段值
     * @param newPassword 需要修改为的新密码
     * @return 修改管理员密码所影响的表数据的行数
     */
    @Update("UPDATE `administrator` SET `password`=#{newPassword} WHERE `id`=#{id}")
    int updatePasswordById(@Param("id") Integer id, @Param("newPassword") String newPassword);

    /**
     * 通过管理员的id主键查询指定管理员的信息
     * @param id 管理员id字段的值
     * @return 查询到的指定管理员信息的封装对象
     */
    @Select("SELECT * FROM `administrator` WHERE `id`=#{id}")
    Administrator queryById(Integer id);

    /**
     * 通过管理员的username查询指定管理员的信息
     * @param username 管理员username字段的值
     * @return 查询到的指定管理员信息的封装对象
     */
    @Select("SELECT * FROM `administrator` WHERE `username`=#{username}")
    Administrator queryByUsername(String username);
}
